﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;



namespace DZJIFC.Model
{
    public interface IModelStructureView
    {
        #region Constants

        // Zero-based indices of the images inside the image list.
        public const int IMAGE_CHECKED = 0;
        public const int IMAGE_MIDDLE = 1;
        public const int IMAGE_UNCHECKED = 2;
        public const int IMAGE_PROPERTY_SET = 3;
        public const int IMAGE_PROPERTY = 4;
        public const int IMAGE_NO_GEOMETRY = 5;
        public const int IMAGE_NOT_REFERENCED = IMAGE_NO_GEOMETRY;

        // Tree
        public const string GEOMETRY = "geometry";
        public const string PROPERTIES = "properties";
        public const string DECOMPOSITION = "decomposition";
        public const string CONTAINS = "contains";
        public const string ITEM_PRODUCT = "(product)";
        public const string ITEM_INSTANCE = "(instance)";
        public const string ITEM_ASSEMBLY = "(assembly)";
        public const string PROPERTIES_PENDING_LOAD = "***..........***";

        #endregion // Constants

        #region Methods

        void OnModelLoaded();

        void OnInstanceSelected(object sender, IInstance instance);

        void TreeView_OnNodeMouseClick(object sender, TreeNodeMouseClickEventArgs e);

        void TreeView_AfterSelect(object sender, TreeViewEventArgs e);

        void TreeView_BeforeExpand(object sender, TreeViewCancelEventArgs e);

        IInstance GetSelectedInstance();

        #endregion // Methods
    }
}
